package com.simon.hse.http;

import com.simon.hse.http.entity.EnvironmentDetailOutput;


import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

@SuppressWarnings("all")
public interface RequestService {

    // 上传文件
    @Multipart
    @POST(ApiConstanse.UPLOAD_FILE)
    // @Part("description") RequestBody description,@Part("token") String token,
    Call<String> UPLOAD_FILE(@Part MultipartBody.Part file);

    // 下载文件
    @GET(ApiConstanse.DOWNLOAD_FILE)
    Call<String> DOWNLOAD_FILE(@Query("id") String msg);

    // 登陆
    //@FormUrlEncoded
    @POST(ApiConstanse.LOGIN_URL)
    Call<String> LOGIN(@Body RequestBody requestBody);

    // 登陆详情
    @GET(ApiConstanse.LOGIN_DETAIL)
    Call<String> LOGIN_DETAIL();

    // 下拉列表
    @POST(ApiConstanse.DROP_DOWN)
    Call<String> DROP_DOWN(@Body RequestBody requestBody);

    // 法律法规_标准库_列表
    @POST(ApiConstanse.LAW_LIST)
    Call<String> LAW_LIST(@Body RequestBody requestBody);

    // 法律法规_标准库_详情
    @GET(ApiConstanse.LAW_DETAIL)
    Call<String> LAW_DETAIL(@Query("id") String msg);

    // 法律法规_文件等级列表
    @POST("/api/mobile/FL_StandardInformation/GetFileLevelList")
    Call<String> FL_StandardInformation_GetFileLevelList(@Body RequestBody requestBody);

    // 承包商人员--查询
    @POST(ApiConstanse.CONTRACTOR_PERSON)
    Call<String> CONTRACTOR_PERSON(@Body RequestBody requestBody);

    // 承包商--查询
    @POST(ApiConstanse.CONTRACTOR)
    Call<String> CONTRACTOR(@Body RequestBody requestBody);

    // 承包商--出场确认
    @POST(ApiConstanse.CONTRACTOR_EXIT)
    Call<String> CONTRACTOR_EXIT(@Body RequestBody requestBody);

    // 承包商--入场确认
    @POST(ApiConstanse.CONTRACTOR_ENTER)
    Call<String> CONTRACTOR_ENTER(@Body RequestBody requestBody);

    // 课件信息查询
    @POST(ApiConstanse.COURSE_INFO)
    Call<String> COURSE_INFO(@Body RequestBody requestBody);

    // 培训人
    @POST(ApiConstanse.TRAIN_PERSON)
    Call<String> TRAIN_PERSON(@Body RequestBody requestBody);

    // 承包商--培训记录
    @POST(ApiConstanse.CONTRACTOR_TRAIN_RECORD)
    Call<String> CONTRACTOR_TRAIN_RECORD(@Body RequestBody requestBody);

    // 承包商--培训记录-详情
    @GET(ApiConstanse.CONTRACTOR_TRAIN_RECORD_DETAIL)
    Call<String> CONTRACTOR_TRAIN_RECORD_DETAIL(@Query("id") String msg);

    // 承包商--培训记录-详情
    @POST(ApiConstanse.ADD_CONTRACTOR_TRAIN_RECORD)
    Call<String> ADD_CONTRACTOR_TRAIN_RECORD(@Body RequestBody requestBody);

    // 考试记录-查询
    @POST(ApiConstanse.EXAMIN_RECORD_LIST)
    Call<String> EXAMIN_RECORD_LIST(@Body RequestBody requestBody);

    // 考试记录-详情
    @GET(ApiConstanse.EXAMIN_RECORD_DETAIL)
    Call<String> EXAMIN_RECORD_DETAIL(@Query("id") String msg);

    // 考试记录-新增
    @POST(ApiConstanse.EXAMIN_RECORD_ADD)
    Call<String> EXAMIN_RECORD_ADD(@Body RequestBody requestBody);

    // 违章记录-查询
    @POST(ApiConstanse.VIOLATION_RECORD_LIST)
    Call<String> VIOLATION_RECORD_LIST(@Body RequestBody requestBody);

    // 违章记录-详情
    @GET(ApiConstanse.VIOLATION_RECORD_DETAIL)
    Call<String> VIOLATION_RECORD_DETAIL(@Query("id") String msg);

    // 违章记录-新增
    @POST(ApiConstanse.VIOLATION_RECORD_ADD)
    Call<String> VIOLATION_RECORD_ADD(@Body RequestBody requestBody);

    // 操作及相关作业活动-查询
    @POST(ApiConstanse.OPERATION_AND_WORK_LIST)
    Call<String> OPERATION_AND_WORK_LIST(@Body RequestBody requestBody);

    // 操作及相关作业活动-详情
    @GET(ApiConstanse.OPERATION_AND_WORK_DETAIL)
    Call<String> OPERATION_AND_WORK_DETAIL(@Query("id") String msg);

    // 操作程序-查询
    @POST(ApiConstanse.OPERATION_LIST)
    Call<String> OPERATION_LIST(@Body RequestBody requestBody);

    // 操作程序-详情
    @GET(ApiConstanse.OPERATION_DETAIL)
    Call<String> OPERATION_DETAIL(@Query("id") String msg);

    // 作业活动-查询
    @POST(ApiConstanse.WORK_LIST)
    Call<String> WORK_LIST(@Body RequestBody requestBody);

    // 作业活动-详情
    @GET(ApiConstanse.WORK_DETAIL)
    Call<String> WORK_DETAIL(@Query("id") String msg);

    // 检维修作业活动-查询
    @POST(ApiConstanse.CHECK_REPAIR_LIST)
    Call<String> CHECK_REPAIR_LIST(@Body RequestBody requestBody);

    // 检维修作业活动-详情
    @GET(ApiConstanse.CHECK_REPAIR_DETAIL)
    Call<String> CHECK_REPAIR_DETAIL(@Query("id") String msg);

    // 设备设施-查询
    @POST(ApiConstanse.EQUIPMENT_LIST)
    Call<String> EQUIPMENT_LIST(@Body RequestBody requestBody);

    // 设备设施-详情
    @GET(ApiConstanse.EQUIPMENT_DETAIL)
    Call<String> EQUIPMENT_DETAIL(@Query("id") String msg);

    // 工艺介质-查询
    @POST(ApiConstanse.PROCESS_LIST)
    Call<String> PROCESS_LIST(@Body RequestBody requestBody);

    // 工艺介质-详情
    @GET(ApiConstanse.PROCESS_DETAIL)
    Call<String> PROCESS_DETAIL(@Query("id") String msg);

    // 场所环境-查询
    @POST(ApiConstanse.ENVIRONMENT_LIST)
    Call<String> ENVIRONMENT_LIST(@Body RequestBody requestBody);

    // 场所环境-详情
    @GET(ApiConstanse.ENVIRONMENT_DETAIL)
    Call<String> ENVIRONMENT_DETAIL(@Query("id") String msg);

    // 我的培训-列表
    @POST(ApiConstanse.MY_TRAIN_LIST)
    Call<String> MY_TRAIN_LIST(@Body RequestBody requestBody);

    // 我的培训-详情
    @POST(ApiConstanse.MY_TRAIN_DETAIL)
    Call<EnvironmentDetailOutput> MY_TRAIN_DETAIL(@Query("id") String msg);

    // 我的培训心得-详情
    @GET(ApiConstanse.EXPERIENCE_DETAIL)
    Call<String> EXPERIENCE_DETAIL(@Query("id") String msg);

    // 我的培训心得-新增
    @POST(ApiConstanse.EXPERIENCE_ADD)
    Call<String> EXPERIENCE_ADD(@Body RequestBody requestBody);

    // 在线学习-列表
    @POST("/api/mobile/PX_Plan/QBKC")
    Call<String> ONLINE_STUDY_LIST(@Body RequestBody requestBody);

    // 在线学习-列表
    @POST(ApiConstanse.EXAMIN_MANAGE_LIST)
    Call<String> EXAMIN_MANAGE_LIST(@Body RequestBody requestBody);

    // 在线学习-详情
    @GET(ApiConstanse.ONLINE_STUDY_DETAIL)
    Call<String> ONLINE_STUDY_DETAIL(@Query("id") String msg);

    // 考试-详情
    @GET(ApiConstanse.EXAMIN_DETAIL)
    Call<String> EXAMIN_DETAIL(@Query("id") String msg);

    // 模拟考试
    @GET("/api/mobile/PX_Plan/zxxxcjks")
    Call<String> PX_Planzxxxcjks(@Query("id") String msg);

    // 提交模拟考试
    @POST("/api/mobile/PX_Plan/zxxxtjsj")
    Call<String> PX_Planzxxxtjsj(@Body RequestBody requestBody);

    // 在线考试
    @GET(ApiConstanse.ONLINE_EXAMIN)
    Call<String> ONLINE_EXAMIN(@Query("id") String msg);

    // 继续考试
    @GET(ApiConstanse.CONTINUE_EXAMIN)
    Call<String> CONTINUE_EXAMIN(@Query("ExamId") String msg, @Query("type") String type);

    // 获取培训_课程分类
    @GET(ApiConstanse.COURSE_CLASS)
    Call<String> COURSE_CLASS();// @Query("id") String msg

    // 获取当前用户指定培训计划的学习时间
    @GET(ApiConstanse.COURSE_HOURS)
    Call<String> COURSE_HOURS(@Query("PlanID") String msg);

    // 累加当前用户指定培训计划的学习时间（1分鐘）
    @GET(ApiConstanse.TOTAL_MINUTE)
    Call<String> TOTAL_MINUTE(@Query("PlanID") String msg);

    // 培训记录-提交考试
    @POST(ApiConstanse.SUBMIT_EXAMIN)
    Call<String> SUBMIT_EXAMIN(@Body RequestBody requestBody);

    // 隐患排查-列表
    @POST(ApiConstanse.DANGER_ELIMINATE_LIST)
    Call<String> DANGER_ELIMINATE_LIST(@Body RequestBody requestBody);

    // 新增隐患排查任务-选择排查内容
    @POST(ApiConstanse.DANGER_GETPLANLIST)
    Call<String> DANGER_GET_PLAN_LIST(@Body RequestBody requestBody);

    // 隐患审批-列表
    @POST(ApiConstanse.DANGER_APPROVAL_LIST)
    Call<String> DANGER_APPROVAL_LIST(@Body RequestBody requestBody);

    // 隐患整改计划-列表
    @POST(ApiConstanse.DANGER_RECTIFY_LIST)
    Call<String> DANGER_RECTIFY_LIST(@Body RequestBody requestBody);

    // 隐患整改验收-列表
    @POST(ApiConstanse.DANGER_RECTIFY_ACCEPT_LIST)
    Call<String> DANGER_RECTIFY_ACCEPT_LIST(@Body RequestBody requestBody);

    // 隐患列表（非计划）-列表
    @POST(ApiConstanse.DANGER_REPORT_LIST)
    Call<String> DANGER_REPORT_LIST(@Body RequestBody requestBody);

    // 隐患STOP-列表
    @POST(ApiConstanse.DANGER_STOP_LIST)
    Call<String> DANGER_STOP_LIST(@Body RequestBody requestBody);

    // 隐患STOP-列表
    @GET(ApiConstanse.DANGER_STOP_DETAIL)
    Call<String> DANGER_STOP_DETAIL(@Query("id") String msg);

    // 隐患级别新增
    @POST(ApiConstanse.DANGER_ADD_LEVEL)
    Call<String> DANGER_ADD_LEVEL(@Body RequestBody requestBody);

    // 隐患公用详情
    @GET(ApiConstanse.DANGER_COMMIN_DETAIL)
    Call<String> DANGER_COMMIN_DETAIL(@Query("id") String msg);

    // 隐患公用详情
    @POST(ApiConstanse.DANGER_UPDATE_SCHEDULE)
    Call<String> DANGER_UPDATE_SCHEDULE(@Body RequestBody requestBody);

    // 作业许可证申请列表
    @POST("/api/mobile/ZY_license/GetList")
    Call<String> LICENSE_GETLIST(@Body RequestBody requestBody);

    // 作业安全方案管理列表
    @POST("/api/Mobile/ZY_SafetySchemeMobile/GetList")
    Call<String> SafetySchemeMobile_GetList(@Body RequestBody requestBody);

    // 安全交底和风险告知确认卡列表
    @POST("/api/mobile/ZY_SafetyCard/GetList")
    Call<String> SafetyCard_GetList(@Body RequestBody requestBody);
}
